The approaches described in this section could be pursued, but are not necessarily approaches that have previously been conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Data centers may be used to provide computing infrastructure by employing a number of computing resources and associated components, such as telecommunication equipment, networking equipment, storage systems, backup power supplies, environmental controls, and so forth. A data center may provide a variety of services (e.g., web applications, email services, and search engine services) for a number of customers simultaneously. To provide these services, the computing infrastructure of the data center may run various software applications and store business and operational data. The computing resources distributed throughout the data center may be physical machines and/or virtual machines running on a physical host.
Computing resources of a data center may transmit and receive data packets via one or more interconnected networks, such as a Wide Area Network (WAN). Physical switches and routers can be distributed throughout the WAN and configured to connect various network segments and route the data packets within the network environment. It may be desirable to optimize or otherwise transform the data packets transmitted and received via the WAN. Routing of the data packets for optimization may be performed by configuring physical switches, routers, and/or other network appliances, to reroute the data packets to a data optimization virtual machine. However, involving reconfiguration of physical network components in data optimization may be costly and require complex coordination of various organizations and departments.
Additionally, an increasing number of computing resources and services are being hosted in the cloud. Infrastructure as a Service (IaaS) allows an organization to outsource the equipment used to support operations. As such, a request for a service may be first routed to a server associated with the service, with the server being housed in an IaaS center.
Software as a Service (SaaS) is also increasingly prevalent as it allows a user to access software services from any computing terminal. Access times for a user to access the SaaS may vary depending on the location from which a user is trying to access the software service. As the access time increases, the user may perceive performance and usability problems with the service. Furthermore, the software service hosted as SaaS may have its necessary computing equipment located in one or more physical locations, including IaaS locations. As such, a user request for a software service may first travel through one or more interconnected networks to one or more IaaS centers and then to the SaaS, which can be located anywhere in the world. Because the data may have to travel substantial geographic distances from each intermediate point, this increases the response time to the end user as well as the opportunities for packet loss.
While there are many optimization techniques that can be accomplished in a WAN, many of these optimization techniques for data transfer across a network require symmetric network components. For example, if data packets are encoded on the transmitting end before transmission through the network, they must be decoded on the receiving end. To optimize data transfer to a particular software service, it is desirable to decode the data as close to the requested software service as possible.
Therefore, a mechanism is needed to find an optimal transit appliance for a requested software service based on network performance characteristics, so that a user can access a software service with the most efficiency.